Rabix: 新一代数据分析应用流程的开发部署解决方案

殷腾飞@第八届R会议@北京
2015-06-07

梗概

  • SBG简介
  • 生物信息流程面临的5大难题
  • Docker简介
  • Common Workflow Language
  • Rabix: CWL的完美实现
  • 实例

  • 成立于2011, 总部位于美国波士顿,全球三个办公室,截止目前100+员工
  • 全球唯一一家给美国政府和英国政府项目同时提供生物信息大数据方案的公司
  • 全球最领先的生物信息云计算平台, 提供最丰富的软件库和最完整安全的生态系统

平台简介

源代码分享

  • 把代码放在github,ftp
  • 作为文章发表的附件
  • 藏在不知道什么鬼地方。。。

难题1:神烦的系统依赖

难题2:分析流程复杂不利于开发和分发

Drawing

难题3:流程不易重复

Drawing

难题4:文章审阅困难

Drawing

难题5:缺乏成熟的国际标准

Nature: 科学软件可重复的重要性

Nature: 精准医疗需透明化生物信息学算法

解决方案?

应用带到数据端

容器化你的工具:使用Docker

关于Docker你只知道两件事情。首先,它使用linux容器;第二,互联网会一直对它喋喋不休。

—Solomon Hykes, Docker CEO

Docker风暴

Docker简介

  • 2013年3月:Docker 0.1发布
  • Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托管在 GitHub 上, 基于Go语言并遵从Apache2.0协议开源。
  • 轻量,快速,便捷
  • Dockfile可手动构建容器,便于分享
  • 记录容器快照历史版本
  • 特性:文件系统隔离, 资源隔离, 网络隔离, 写时复制, 日志记录, 变更管理, 交互式Shell
  • 目前Docker正处在开发阶段,官方不建议用于生产环境。
  • Docker是基于Ubuntu开发的,所以官方推荐将其安装在Ubuntu的操作系统上,目前只能安装在linux系统上。

Docker原理

Docker vs 虚拟机

Dockerfile示例: "编译"出你的容器, rocker/r-base

Rocker: 使用Docker容器运行R

  • R的官方Docker镜像管理
  • Gihub上有用来建立容器的Dockerfile

  • 项目起始于2001, 由Robert Gentleman领导创立
  • 专门的生物信息R软件库, 截止目前1024个软件包, 包括各种注释数据。
  • 每年两次更新
  • AMI和Docker镜像可用

Bioconductor容器列表

标准化:Common Workflow Language

  • 多家机构参与开发和定制包括: Seven Bridges Genomics (发起和主要参与者),Curoverse,Galaxy,Institut Pasteur,BioDatomics,Michigan State University,Broad Institute 等等
  • google group已有100+人
  • 请访问github官网

CWL: 为数据科学而生

  • CWL用来描述数据科学所使用的流程, 包括生物信息,化学,物理,宇航等等。针对命令行工具(Command Line Tools) 和流程(Workflow)定义了数据和流程执行模型,从而可以移植在不容的计算平台上,从个人工作站到cluster,grid,云和高性能运算平台。提高了流程的可移植性和可重复性。
  • JSON, YML描述性的语言(数据,工具,流程,参数等)
  • 使用向图(directed graph)来描述一系列讲输入数据转化为输出数据的的操作。
  • 包含了命令行工具(command line) 和表达工具(使用ECMAScript)。

Rabix: Reproducbile Analysis for Bioinforamtics

  • CWL的第一个完美植入,简单易用的用户界面
  • 开源开放,可封闭开发,可方便分享,可绑定github账户
  • 四大组件:注册库,工具编辑器,流程编辑器,python executor
  • 由SBG开发,请访问官方网站 rabix.org或者rabix.io

一个简单的流程

定义工具

定义输入

定义参数

定义输出

定义流程

Rabix: 为用户而生

Rabix: 为用户而生

实例

我希望执行一个命令

samtools view -bS in.sam out.bam
  • 命令行 samtools view
  • 输入文件 Sam
  • 输出文件 Bam
  • Adaptor -bS

安装base镜像创建新的容器

进入ubuntu镜像

docker run -ti ubuntu bash

在虚拟机里安装samtools(注:先进行update)

apt-get update
apt-get install samtools

封装推送容器

docker commit -m "add samtools 0.1.19 to ubuntu base" \
-a "Tengfei Yin" 0d1ff3541700 tengfei/samtools:0.1.19

docker push tengfei/samtools

Seven Bridges Genomics: 整合Rabix

  • 原生支持rabix
  • 完美整合SBG官方平台
  • 简易开发,云端运行

Seven Bridges Genomics: Rabix支持

致谢

  • Nebojsa Tijanic (Seven Bridges Genomics)
  • Sinisa Ivkovic (Seven Bridges Genomics)
  • Milica Kadic (Seven Bridges Genomics)
  • Luka Stojanovic (Seven Bridges Genomics)